# ### 第三题
# 请编写一个Python函数`filter_and_sort`，该函数接收两个参数：一个整数列表`nums`和一个整数`threshold`。函数的目标是返回一个新列表，
# 其中包含原列表中所有大于`threshold`的元素，并且这个新列表需要按照从小到大的顺序排序。
#
# 此外，为了确保函数的正确性，请在函数末尾添加断言（assert）来验证返回的列表确实只包含大于`threshold`的元素，并且是升序排列的。
#
# **示例输入输出如下：**
#
# 输入: `nums = [1, 2, 3, 4, 5], threshold = 2`
# 输出: `[3, 4, 5]`
#
# 输入: `nums = [10, 9, 8, 7, 6], threshold = 7`
# 输出: `[8, 9, 10]`
#
# **提示：**
# - 使用列表推导来过滤大于`threshold`的元素。
# - 使用内置函数`sorted`来对过滤后的列表进行排序。
# - 使用断言来确保函数的输出符合预期。
#
# 这个问题需要你理解如何处理列表、如何定义和调用函数，以及如何使用断言来进行基本的测试。
# #### 答案：
# ```python
def filter_and_sort(nums,threshold):
    arr=[]
    sz=len(nums)
    for i in range(sz):
        if(nums[i]>threshold):
            arr.append(nums[i])
    result=sorted(arr)
    assert((arr[0]>threshold) and (result==sorted(result)))
    return result

arr=[1,2,3,1,2,3,3,8,7,6,9,7,5,4,10]
tmp=3
print(filter_and_sort(arr,tmp))








#answer:
def filter_and_sort(nums, threshold):
    # 初始化一个空列表用于存放过滤后的元素
    filtered_nums = []
    # 遍历原列表，将大于threshold的元素添加到filtered_nums中
    for num in nums:
        if num > threshold:
            filtered_nums.append(num)

    # 对过滤后的列表进行排序
    result = sorted(filtered_nums)

    # 断言验证
    assert all(num > threshold for num in result), "All elements must be greater than threshold"
    assert result == sorted(result), "The list must be sorted"

    return result